package com.hclc.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.hclc.entity.dto.JobAndTriggerDto;
import com.hclc.entity.model.enums.QuartzEnums;

import java.util.Map;

/**
 * @创建人 ws
 * @郵箱 zhisirudan@gmail.com
 * @创建时间 2019/11/9
 */
public interface QuartzTemplateService {
    /**
     * 查询所有定时器
     *
     * @param iPage
     * @param quartzEnums
     * @author ws
     * @mail zhisirudan@gmail.com
     * @date 上午10:22
     */
    IPage<JobAndTriggerDto> getList(Page<JobAndTriggerDto> iPage, QuartzEnums quartzEnums);

    /**
     * 添加定时任务
     *
     * @param quartzEnums
     * @param cron
     * @param map
     * @author ws
     * @mail zhisirudan@gmail.com
     * @date 上午10:22
     */
    boolean addQuartz(QuartzEnums quartzEnums, String cron, Map map);

    /**
     * 暂停定时任务
     *
     * @param jobClassName
     * @param jobGroupName
     * @author ws
     * @mail zhisirudan@gmail.com
     * @date 上午10:22
     */
    boolean pauseQuartz(String jobClassName, String jobGroupName);


    /**
     * 恢复定时任务
     *
     * @param jobClassName
     * @param jobGroupName
     * @author ws
     * @mail zhisirudan@gmail.com
     * @date 上午10:22
     */
    boolean resumeQuartz(String jobClassName, String jobGroupName);

    /**
     * 重新设置任务
     *
     * @param jobClassName
     * @param jobGroupName
     * @author ws
     * @mail zhisirudan@gmail.com
     * @date 上午10:22
     */
    boolean rescheduleQuartz(String jobClassName, String jobGroupName, String cron);

    /**
     * 删除定时任务
     *
     * @param jobClassName
     * @param jobGroupName
     * @author ws
     * @mail zhisirudan@gmail.com
     * @date 上午10:22
     */
    boolean delQuartz(String jobClassName, String jobGroupName);
}
